package es.ucm.pe.algorithms;

public class IndividuoTipo1 extends Cromosoma {
	
	
	public IndividuoTipo1(Rango[] r , double tol, int id){
		super(tol,r,id);
		evaluar();
	}
	
	public IndividuoTipo1(boolean[] genes, double[] fenotipo, double aptitud, double puntuacion,
			double puntAcum, int[] longVar, Rango[] r, int id) {
		super(genes,fenotipo,aptitud,puntuacion,puntAcum,longVar, r, id);
	}
	
	public void evaluar(){
		calcularFenotipo();
		double f = fenotipo[0];
		aptitud = 20 + Math.E - 20*(Math.pow(Math.E,((-0.2)*Math.abs(f)))) - Math.pow(Math.E,Math.cos(2*Math.PI*f));
	}
	
	public Cromosoma clone(){
		Cromosoma c = new IndividuoTipo1(this.genes.clone(),this.fenotipo.clone(),
				this.aptitud, this.puntuacion,this.puntAcum,this.longVar.clone(), this.rango.clone(), this.id);
		return c;
	}
}
